The present system relates to the field of network simulation and particularly to visualization of a computer network.
Computers are today used extensively by users to implement many applications. Users interact through a user interface (UI) provided by an application running on the computer. The visual environment is displayed by the computer on a display device and the user is provided with an input device to influence events or images depicted on the display. UI's present visual images which describe various visual metaphors of an operating system, an application, etc. implemented on the computer.
The user typically moves a user-controlled object, such as a cursor or pointer, across a computer screen and onto other displayed objects or screen regions, and then inputs a command to execute a given selection or operation. Other applications or visual environments also may provide user-controlled objects such as a cursor for selection and manipulation of depicted objects in either of a two-dimensional or three-dimensional space.
The user interaction with and manipulation of the computer environment is achieved using any of a variety of types of human-computer interface devices that are connected to the computer controlling the displayed environment. A common interface device for UI's is a mouse or trackball. A mouse is moved by a user in a planar workspace to move an object such as a cursor on the two-dimensional display screen in a direct mapping between the position of the user manipulation and the position of the cursor. This is typically known as position control, where the motion of the object directly correlates to motion of the user manipulation.
An example of such a UI is a UI for depicting/manipulating network connections to assist a user, such as a network administrator, to visualize and maintain vast arrays of networked devices. A typical visualization of a computer network is a two-dimensional graph where the vertices correspond to devices and the edges correspond to physical links or connections. The edges may also or alternatively correspond to non-physical associations or dependencies. By the visualization of network devices and links within a suitable UI, an operator may readily get an overview of network operations including communication load, service availability, network collisions, and/or other network related information.
Small networks, such as within a household or office building may be readily visualized with desired information that is easily discernable. However, for larger networks, a common problem is that the scale and complexity of the visualization, such as a graph, make it difficult to focus on particular components within the graph. One common way to address this complexity is to subdivide the graph into sub-graphs based on some criteria such as physical proximity. For example, all of the devices in a building, city, or other proximity condition, may be represented in a second graph. The second graph may indicate relevant details for that proximity condition (e.g., building, city, etc.). The first graph may now be modified to just have a single replacement vertex that represents all of the elements in the second graph. All edges that did connect the remaining elements in the first graph to elements now in the second graph can instead be modified to connect to the replacement vertex.
In this way, a large complex graph may be broken up into a collection of simpler, hierarchically-related sub-graphs. This arrangement allows the user to view the network at different levels of detail with the more detailed views only showing, in this example, proximate neighbors. As may be readily appreciated, the hierarchy may be defined based on criteria other than proximity. However, to the extent that the hierarchy is statically defined, it will interfere with the simultaneous viewing of devices that happen to have different criteria values. For example, if the hierarchy is based on proximity, it may not be possible to see two devices from different proximities at the same time. Even in a flat network, without any hierarchy, it may be difficult to provide a focused view of devices on opposite ends of the visual representation because of all of the potentially intervening vertices and edges. Either the user must zoom out to see everything at once, which may cause a lot of overlap in the visual representation, or the user must scroll the display window back and forth, which is cumbersome and may not enable a desired overview and comparison of the network and network components. With hierarchical sub-graphs, it may be necessary to open more than one window, each displaying a different sub-graph representation, to see distant objects at the same time. Further, even the reduced detail provided by the sub-graphs may obscure particular devices and/or interconnections of interest. In addition, different portions of the graph of interest may not be selectable using fixed criteria, such as proximity conditions and given sub-graphs may not provide a desired level of context.
It is an object of the present system to overcome disadvantages and/or make improvements in the prior art.
The present system includes a system, method and device for producing a user interface of a device for displaying a visual representation of a network of objects. In operation, a plurality of selectable objects are rendered, wherein each of the plurality of selectable objects are depicted having a given positioning relative to each other of the plurality of selectable objects. One or more edges are depicted interconnecting the plurality of selectable devices within a first region of the user interface. A second region is rendered in response to one or more of the selectable objects of the first region being selected, wherein featured objects corresponding to the selected objects are rendered in the second region while maintaining the given relative positioning of the corresponding selected object. In response to a selected object, a number of additional objects, namely associate objects, are retrieved from a database that indicates objects that are adjoining the feature objects. The associate objects are positioned in the second region without substantially changing the given relative positioning of the feature objects. The associate objects depicted in the second region are interconnected to the feature objects by one or more additional edges.
The present system provides a system for displaying and interacting with a partial, but dynamic, representation of a network of objects in the second region in conjunction with a static representation in the first region. In operation, the display may be configured to show either representation or it may be split into a plurality of regions (first region, second region, etc.), each displaying one form of either representation. The static representation provided in the first region may display all of the network objects from a single network sub-graph as selectable vertices and edges. The dynamic representation provided in the second region displays some number of network objects from any of the statically defined sub-graphs also as selectable vertices and edges but not necessarily as a fully connected sub-graph. The set of objects displayed in the dynamic representation consists of explicitly featured objects (e.g., selected objects) and implicitly-determined associate objects. In accordance with the present system, the positioning of objects in the dynamic representation is automatically determined whenever the user features (e.g., selects objects from the first region) or unfeatures objects.
Typically, the user decides which objects are to be featured in the dynamic representation. For example, the user may select one or more objects in the static representation and then run a featuring operation. Alternatively, the user may run some content-based selection operation and then feature the results. When the set of featured objects is changed, the system may automatically pick the set of associate objects based on default or user specified system settings. For example, the system may be configured to consider the objects whose vertices are one edge away from the vertices of at least one featured object, as well as the objects represented by the connecting edges, as associate objects. A larger set of associate objects may result from considering objects at more than two or three edges away in the graph. By displaying associate objects and connecting them to the featured objects, the system provides a visual context to help the user understand where the featured objects belong in the sub-graphs. Further, by considering the connections between objects in different static sub-graphs of a hierarchical network graph, the system can show the context within the full network graph.
Since the set of featured and associate objects may change based on the user's interactive specification, the system lays out the objects dynamically. The system lays out the objects in the dynamic network representation typically with at least one of three goals. First, since the purpose of the dynamic representation is to feature objects of interest, all of the objects provided in the second region may be visible at the same time. The system may address this object by using an unscrollable region for the dynamic network representation. The term unscrollable is intended to convey that since all objects depicted in the second region are depicted simultaneously, there is no need to provide a scrollable user interface. Second, just as the presence of associate objects may give the user some context to locate the featured objects in the network, the relative position of the objects may also provide useful visual cues. For this reason, the system may start the layout operation by placing all of the objects in statically defined locations, that is, the objects' effective locations if the static, hierarchical network graph were flattened to a single static graph. Finally, since the display region may be unscrollable, the original locations of the objects depicted in the second region may be too close together, even overlapping, or too far apart, leaving a lot of unused space. The system may handle this by performing an iterative algorithm that pushes the objects away from each other, while keeping cohesion along the edges of the graph fragments. The system may further uniformly size all or groups (e.g., featured objects, associate objects, etc.) of the vertex representations.
In a further embodiment, a zooming of the depicted objects may be performed to substantially fill a predefined area allocated to the second region. The objects may be rendered in the second region by spacing and sizing representations of the objects such that objects and edges do not overlap while the representations of the objects substantially fill a predetermined area of the second region.
Labeling of the representations of the objects depicted in the second region may be provided by retrieving labels associated with the objects from a database. A visual differentiation between featured and associate objects may be provided in the second region. An associate object in the second region may also be selected. In response to a selection of an associate object, a view in the first region of the object selected in the second region may be altered, for example by providing a zoomed view in the first region of the associate object selected in the second region.
The system may use the same visual representation for the individual vertices and edges that correspond to featured objects in the dynamic network representation as in the static network representation. For example, the static network representation may represent a network device by a color icon, and a network link, by a thick red line. If a corresponding device or link is featured in the dynamic representation provided in the second region, it may be shown with the same icon or line style to facilitate its identification in the dynamic representation. However, to distinguish between featured objects and associate objects, the dynamic network representation may represent associate objects by smaller gray-scale icons connected, for example, by a thin dashed black line.